package nexus.adec;

import control.*;
import java.util.ArrayList;
import java.util.HashMap;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.event.ValueChangeEvent;
import nexus.adec.recursos.SeleccionWidgetBienvenida;
import nexus.adec.recursos.SeleccionWidget;

/**
 *
 * @author juampi
 */
public class ConfigurarWidgets implements Confirmable {
    private Long bienbenida;
    private Long calendario;
    private Long google;
    private Long imagen;
    private Long buscar;
    private ArrayList<SeleccionWidgetBienvenida> listaBienbenida;
    private ArrayList<SeleccionWidget> listaCalendario;
    private ArrayList<SeleccionWidget> listaGoogle;
    private ArrayList<SeleccionWidget> listaImagen;
    private ArrayList<SeleccionWidget> listaBuscar;
    private HashMap<String,Widget> hwid;
    private ArrayList<Widget> wid;
    private String contenido;

    public ConfigurarWidgets(){
        listarOpciones();
    }
    public void listarOpciones(){
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean u = (UserBean)vr.resolveVariable(facesContext, "userBean");
        wid=GestorEspacioDB.getInstance().recuperarPreferencias(u.getCodigoCurso());
        hwid=new HashMap<String,Widget>();
        for(Widget w : wid){
            hwid.put(w.getNombre(), w);
        }
        bienbenida=Long.parseLong(hwid.get("bienvenida").getEstado()+"");
        calendario=Long.parseLong(hwid.get("calendario").getEstado()+"");
        google=Long.parseLong(hwid.get("google").getEstado()+"");
        imagen=Long.parseLong(hwid.get("mostrar_imagen_usuario").getEstado()+"");
        buscar=Long.parseLong(hwid.get("buscador_usuarios").getEstado()+"");
        listaBienbenida=new ArrayList<SeleccionWidgetBienvenida>();

        listaBienbenida.add(new SeleccionWidgetBienvenida(1,"Sin Bienvenida","-"));
        listaBienbenida.add(new SeleccionWidgetBienvenida(1,"Bienvenida Estandar","BIENVENIDO AL ESPACIO"));
        SeleccionWidgetBienvenida b3=new SeleccionWidgetBienvenida(1,"Bienvenida Personal",hwid.get("bienvenida").getValor());
        if(bienbenida==2){
            b3.setEditable(true);
            contenido=hwid.get("bienvenida").getValor();
        }
        listaBienbenida.add(b3);
        listaCalendario=new ArrayList<SeleccionWidget>();
        listaCalendario.add(new SeleccionWidget("Si,"," deseo que los usuarios de mi espacio tengan el acceso a un calendario"));
        listaCalendario.add(new SeleccionWidget("No","deseo que los usuarios de mi espacio tengan el acceso a un calendario"));
        listaGoogle=new ArrayList<SeleccionWidget>();
        listaGoogle.add(new SeleccionWidget("Si,"," deseo que los usuarios de mi espacio tengan el acceso a un buscador google"));
        listaGoogle.add(new SeleccionWidget("No","deseo que los usuarios de mi espacio tengan el acceso a un buscador google"));
        listaImagen=new ArrayList<SeleccionWidget>();
        listaImagen.add(new SeleccionWidget("Si,",", deseo que los usuarios de mi espacio vean mi imagen personal"));
        listaImagen.add(new SeleccionWidget("No","deseo que los usuarios de mi espacio vean mi imagen personal"));
        listaBuscar=new ArrayList<SeleccionWidget>();
        listaBuscar.add(new SeleccionWidget("Si,",", deseo que los usuarios de mi espacio puedan buscar a otros usuarios"));
        listaBuscar.add(new SeleccionWidget("No","deseo que los usuarios de mi espacio puedan buscar a otros usuarios"));
    }
    public void seleccionBienbenida(ValueChangeEvent event)
    {
        Long newVal = (Long) event.getNewValue();
        if(newVal==2)
            listaBienbenida.get(2).setEditable(true);
        else{
            listaBienbenida.get(2).setEditable(false);
        }
        bienbenida=newVal;
    }
    public void seleccionCalendario(ValueChangeEvent event)
    {
        Long newVal = (Long) event.getNewValue();
        calendario=newVal;
    }
    public void seleccionGoogle(ValueChangeEvent event)
    {
        Long newVal = (Long) event.getNewValue();
        google=newVal;
    }
    public void seleccionImagen(ValueChangeEvent event)
    {
        Long newVal = (Long) event.getNewValue();
        imagen=newVal;
    }
    public void seleccionBuscar(ValueChangeEvent event)
    {
        Long newVal = (Long) event.getNewValue();
        buscar=newVal;
    }

    public Long getBienbenida()
    {
        return bienbenida;
    }

    public void setBienbenida(Long bienbenida) {
        this.bienbenida = bienbenida;
    }

    public Long getCalendario() {
        return calendario;
    }

    public void setCalendario(Long calendario) {
        this.calendario = calendario;
    }

    public Long getGoogle() {
        return google;
    }

    public void setGoogle(Long google) {
        this.google = google;
    }

    public Long getImagen() {
        return imagen;
    }
    public void setImagen(Long imagen) {
        this.imagen = imagen;
    }

    public Long getBuscar() {
        return buscar;
    }
    public void setBuscar(Long buscar) {
        this.buscar = buscar;
    }
    public ArrayList<SeleccionWidgetBienvenida> getListaBienbenida() {
        return listaBienbenida;
    }
    public void setListaBienbenida(ArrayList<SeleccionWidgetBienvenida> listaBienbenidas) {
        this.listaBienbenida = listaBienbenidas;
    }
    public ArrayList<SeleccionWidget> getListaCalendario() {
        return listaCalendario;
    }
    public void setListaCalendario(ArrayList<SeleccionWidget> listaCalendario) {
        this.listaCalendario = listaCalendario;
    }
    public ArrayList<SeleccionWidget> getListaGoogle() {
        return listaGoogle;
    }
    public void setListaGoogle(ArrayList<SeleccionWidget> listaGoogle) {
        this.listaGoogle = listaGoogle;
    }
    public ArrayList<SeleccionWidget> getListaImagen() {
        return listaImagen;
    }

    public void setListaImagen(ArrayList<SeleccionWidget> listaImagen) {
        this.listaImagen = listaImagen;
    }

    public ArrayList<SeleccionWidget> getListaBuscar() {
        return listaBuscar;
    }

    public void setListaBuscar(ArrayList<SeleccionWidget> listaBuscar) {
        this.listaBuscar = listaBuscar;
    }
    public String guardarCambios(){
        
          hwid.get("bienvenida").setEstado(Integer.parseInt(bienbenida+""));
          if(bienbenida==2){
            hwid.get("bienvenida").setValor(contenido);
          }else if(bienbenida==1){
              hwid.get("bienvenida").setValor("BIENVENIDO AL ESPACIO");
          }
        
          hwid.get("calendario").setEstado(Integer.parseInt(calendario+""));
          hwid.get("google").setEstado(Integer.parseInt(google+""));
          hwid.get("mostrar_imagen_usuario").setEstado(Integer.parseInt(imagen+""));
          hwid.get("buscador_usuarios").setEstado(Integer.parseInt(buscar+""));
          FacesContext facesContext = FacesContext.getCurrentInstance();
          VariableResolver vr = facesContext.getApplication().getVariableResolver();
          UserBean u = (UserBean)vr.resolveVariable(facesContext, "userBean");
          GestorEspacioDB.getInstance().guardarPreferenciasCurso(u.getCodigoCurso(), wid);
          FacesContext face=FacesContext.getCurrentInstance();
          FacesMessage mesaje=new FacesMessage("Los cambios se guardaron correctamente","Los cambios se guardaron correctamente");
          face.addMessage(null, mesaje);
          return "#";
    }
    public String getContenido() {
        return contenido;
    }
    public void setContenido(String contenido) {
        this.contenido = contenido;
    }

    public String getMensaje() {
        return "Se realizo el cambio de la configuracion de los witgets";
    }

    public String getDireccion() {
        return "irAConfigurarWidgets";
    }

    public void setDecicion(String decicion) {

    }

    public int getTipo() {
        return Confirmable.TIPO_CONFIRMACION;
    }
}
